#ifndef __INT_NORFLASH_H__
#define __INT_NORFLASH_H__

#include "Dri_SPI.h"

/**
 * @brief NorFlash初始化
 * 
 */
void Int_NorFlash_Init(void);

/**
 * @brief 获取NorFlash的Manufacture ID和Product ID
 * 
 * @param mid 用于存储Manufacture ID的指针
 * @param pid 用于存储Product ID的指针
 */
void Int_NorFlash_GetProductID(uint8_t *mid, uint16_t *pid);

/**
 * @brief 向NorFlash中指定的页写入指定长度的数据
 * 
 * @param block_addr    块地址
 * @param sector_addr   扇区地址
 * @param page_addr     页地址
 * @param data          要写入的数据指针
 * @param len           要写入的数据长度，范围为1到256    
 */
void Int_NorFlash_WritePage(uint8_t block_addr, uint8_t sector_addr, uint8_t page_addr, uint8_t *data, uint16_t len);

/**
 * @brief 读取NorFlash中指定位置指定长度的数据
 * 
 * @param block_addr    块地址
 * @param sector_addr   扇区地址
 * @param page_addr     页地址
 * @param byte_addr     字节地址
 * @param data          用于存储读取数据的指针
 * @param len           要读取的数据长度，范围为1到256
 */
void Int_NorFlash_ReadData(uint8_t block_addr, uint8_t sector_addr, uint8_t page_addr, uint8_t byte_addr, uint8_t *data, uint16_t len); 


#endif /* __INT_NORFLASH_H__ */
